//typedef用于给函数类型取别名
typedef Adder = int Function(int, int);

//定义内部函数，返回Adder类型的函数
Adder makeAdder(int temp) {
  /*return (int x, int y) {
    return x + y + temp;
  };*/

  //return语句仅有一行，可以改为lambda
  //return (int x, int y) => x + y + temp;

  //lambda支持参数的类型推断,可以省略int
  return (x, y) => x + y + temp;
}

void main() {
  //makeAdder为一个函数类型
  var add = makeAdder(12);
  print(add(1, 2));
}
